home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 2 / Gekikoh Dennoh Club Vol. 2 (Japan).7z / Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin / games / mashou / plugin / color.c < prev    next >
Text File  |  1997-05-30  |  1KB  |  74 lines

  1. /*
  2.                                 
  3.             パレット単色化
  4.         color.x blue red green
  5.         blue :青成分
  6.         red  :赤成分
  7.         green:緑成分
  8.     徐々に、パレットが、全て指定色になる。
  9.                                 
  10.                         by SJOM
  11. */
  12.  
  13.  
  14. #include <sys/iocs.h>
  15. #include <stdlib.h>
  16.  
  17.  
  18. static void
  19. pal_upcol(int blue,int red,int green)
  20. {
  21.     int block,code,col=0,bl=0,rd=0,gr=0;
  22.     for (block=2;block<16;block++) {
  23.     _iocs_spalet(0,block,-1);        /* dummy */
  24.         for (code=0;code<16;code++) {
  25.             gr=_iocs_spalet(code+0x80000000,block,-1);
  26.             bl=(gr>>=1) & 31;
  27.             rd=(gr>>=5) & 31;
  28.             gr>>=5;
  29.             if (bl!=blue) {
  30.                 if (bl>blue) {
  31.                     bl--;
  32.                 } else {
  33.                     bl++;
  34.                 };
  35.             };
  36.             if (rd!=red) {
  37.                 if (rd>red) {
  38.                     rd--;
  39.                 } else {
  40.                     rd++;
  41.                 };
  42.             };
  43.             if (gr!=green) {
  44.                 if (gr>green) {
  45.                     gr--;
  46.                 } else {
  47.                     gr++;
  48.                 };
  49.             };
  50.             col=(gr<<11) | (rd<<6) | (bl<<1) | 1;
  51.             _iocs_spalet(code+0x80000000,block,col);
  52.         };
  53.     };
  54. }
  55.  
  56.  
  57. int
  58. main(int argc,char **argv)
  59. {
  60.     int j,blue,red,green;
  61.     if (argc!=4)
  62.         exit(1);
  63.     argv++;
  64.     blue=atoi(*argv++) & 31;
  65.     red=atoi(*argv++) & 31;
  66.     green=atoi(*argv++) & 31;
  67.     for (j=0;j<32;j++) {
  68.         pal_upcol(blue,red,green);
  69.     };
  70.     exit(0);
  71. }
  72.  
  73.  
  74.